import mysql.connector

# 数据库连接配置
db_config = {
    'host': '10.1.213.159',
    'user': 'GTXS_user',
    'password': 'GTXS_user_JG123',
    'database': 'mdsdb'
}

# 要设置默认值的字段名和默认值
column_name = 'tenant_id'  # 要修改的字段名
default_value = "'010'"  # 例如: '0', "'active'", "'2023-01-01'"

try:
    # 连接数据库
    conn = mysql.connector.connect(**db_config)
    cursor = conn.cursor()

    # 获取数据库中的所有表
    cursor.execute("SHOW TABLES")
    tables = [table[0] for table in cursor.fetchall()]

    # 遍历所有表
    for table in tables:
        try:
            # 检查表是否包含目标字段
            cursor.execute(f"SHOW COLUMNS FROM {table} LIKE '{column_name}'")
            if cursor.fetchone():
                # 执行ALTER TABLE语句添加默认值
                sql = f"ALTER TABLE {table} ALTER COLUMN {column_name} SET DEFAULT {default_value}"
                cursor.execute(sql)
                print(f"成功为表 {table} 的字段 {column_name} 设置默认值: {default_value}")
            else:
                print(f"表 {table} 不包含字段 {column_name}，已跳过")

        except mysql.connector.Error as err:
            print(f"处理表 {table} 时发生错误: {err}")
            conn.rollback()

    # 提交所有更改
    conn.commit()
    print("所有表处理完成")

except mysql.connector.Error as err:
    print(f"数据库操作发生错误: {err}")

finally:
    # 关闭连接
    if 'conn' in locals() and conn.is_connected():
        cursor.close()
        conn.close()